jdk1.8中hashmap源码分析
本文以JDK 1.8.0_131源代码为例进行分析:
- jdk1.6到1.8中hashmap的变化
- hashmap的实现原理
- 数组大小及相关参数规定
- Hashmap的put方法实现
- Hashmap的get方法实现
jdk1.6到1.8中hashmap的变化
JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。
JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。
hashmap的实现原理
:采用的是“桶位”,即一个Node数组实现